#include "myhead.h"

/*
	有名管道用于两个没有任何关系的进程间通信 
*/

int main()
{
	int ret;
	int fd;
	char buf[100];
	char otherbuf[100];
	//创建有名管道
	ret = mkfifo("/home/gec/mysecond",0777);
	if(ret==-1){
		printf("error number is : %d\n",errno);
		//判断错误的原因,只关心是否是因为管道存在导致这个错误 
		if(errno == EEXIST){
			printf("had exist!\n"); 
		} 
		//错误的原因不是文件存在 
		else{
			perror("mkfifo");
			return -1;
		}	
	}
	//打开你刚才新建的那个管道文件
	fd = open("/home/gec/mysecond",O_RDWR); 
	if(fd == -1){
		perror("open");
		return -1;
	}
	
	//读取管道中p1发送的信息
	while(1){
		bzero(buf,100);
		bzero(otherbuf,100);
		read(fd,buf,100);
		if(strcmp(buf,"quit")==0){
			break;
		}
				
		printf("p1's information is %s\n",buf);
		printf("please input information to p1 : \n");
		scanf("%s",otherbuf);
		write(fd,otherbuf,strlen(otherbuf));
		sleep(1);//防止自己写入到管道中的内容，自己立马给读出来了 
	} 
	close(fd);
	 
}
